package cn.da.shuai.cool.system.model.entity.user;

import cn.da.shuai.cool.common.entity.UpdateBase;
import cn.da.shuai.cool.system.model.entity.dept.DeptUserVo;
import cn.da.shuai.cool.system.model.enums.user.GenderType;
import cn.da.shuai.cool.system.model.enums.user.UserStatusType;
import cn.da.shuai.cool.system.model.enums.user.UserType;
import com.fasterxml.jackson.annotation.JsonView;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Setter
@Getter
@Schema(description = "用户更新实体")
public class SaveUserVo extends UpdateBase<Integer> {

    @NotBlank
    @Schema(description = "姓名")
    private String username;

    @NotBlank
    @NotBlank(message = "{user.no.notBlank}")
    @Schema(description = "用户编号")
    private String userNo;

    @Schema(description = "用户昵称")
    private String nickName;

    @Schema(description = "用户类型")
    private UserType userType;

    @Email
    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "手机号码")
    private String phone;

    @Schema(description = "性别（1男 2女 3保密）")
    private GenderType gender;

    @Schema(description = "头像路径")
    private String avatar;

    @Schema(description = "帐号状态（1正常 2停用 3删除）")
    private UserStatusType status;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "部门用户关系列表")
    private List<DeptUserVo> deptList;
}
